//
//  FileManagerUtil.h
//  ProjectTemplet
//
//  Created by HouKavin on 16/2/4.
//  Copyright © 2016年 HouKavin. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface FileManagerUtil : NSObject
// 程序主目录，可见子目录(3个):Documents、Library、tmp
+(NSString *)homePath;
// 程序目录，不能存任何东西
+(NSString *)appPath;
// 文档目录，需要ITUNES同步备份的数据存这里，可存放用户数据
+(NSString *)docPath;
// 配置目录，配置文件存这里
+(NSString *)libPrefPath;
// 缓存目录，系统永远不会删除这里的文件，ITUNES会删除
+(NSString *)libCachePath;
// 临时缓存目录，APP退出后，系统可能会删除这里的内容
+(NSString *)tmpPath;

#pragma mark - 文件存取
// 把对象归档存到沙盒里(可自定义路径)
+(void)saveObject:(id)object byFolderName:(NSString *)folderName   andFileName:(NSString*)fileName;
// 通过文件名从沙盒中找到归档的对象(可自定义路径)
+(id)getObjectByFolderName:(NSString *)folderName  andFileName:(NSString*)fileName;
//沙盒路径下是否存在目标文件
+(BOOL)hasLiveWithFolderPath:(NSString *)folderPath andFilePath:(NSString *)filePath;
//删除指定文件夹内所有内容(必须在Document目录下)
+(void)cleanDocumentSonFolder:(NSString *)folderPath;

#pragma mark - 删除缓存文件
//清理缓存
+(void)cleanCaChe;
//清理临时文件
+(void)cleanTmp;
//清理缓存及临时文件
+(void)cleanCacheAndTmp;

//单个文件的大小
//+(long long)fileSizeAtPath:(NSString*) filePath;
//遍历文件夹获得文件夹大小，返回多少M
//+(float)folderSizeAtPath:(NSString*) folderPath;
//删除指定文件夹内所有内容
//+(void)removeFilesAtPath:(NSString*) folderPath;

#pragma mark - 用户设置
// 存储用户偏好设置 到 NSUserDefults
+(void)saveUserData:(id)data forKey:(NSString*)key;
// 读取用户偏好设置
+(id)readUserDataForKey:(NSString*)key;
// 删除用户偏好设置
+(void)removeUserDataForkey:(NSString*)key;


@end
